With exponentially growing data volumes, the fast access to data has become critical for applications utilizing database management systems (DBMS). With the presence of large datasets, applications have to submit complex and thus, long running queries to DBMSs. To expedite query executions for applications, many different architectures have been developed for a DBMS.
However, the different DBMS architectures achieve better performance in part by compromising on some features of a DBMS. For example, a high-speed in-memory DBMS has limited capacity because the volatile memory required for the DBMS is generally more expensive, and thus may not contain full set of data in volatile memory. Other DBMS architectures optimize the execution of queries for a particular set of operations and have degraded performance for other operations. Accordingly, an application utilizing such a DBMS may have desirable performance on some queries, while less than desirable performance for other queries.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.